
import http from "wechat-http"

http.baseURL = "https://live-api.itheima.net"

http.intercept.response =  async function({data,config}){
  if (data.code !== 10000 && data.code !== 401) return wx.utils.toast("请求失败") 
  if (data.code === 401) {
      // wx.request({
      //   url: wx.myRequest.baseURL + "/refreshToken",
      //   method:"post",
      //   header:{
      //     "Authorization": `Bearer ${getApp().refreshToken}`
      //   },
      //   success: (ev) =>{
      //     getApp().refreshToken = ev.data.data.refreshToken
      //     getApp().token = ev.data.data.token

      //     wx.setStorageSync('token', ev.data.data.token)
      //     wx.setStorageSync("refreshToken",ev.data.data.refreshToken)

      //     const myConfig = Object.assign(config,{
      //       header: {"Authorization": `Bearer ${getApp().token}`}
      //     })
      //     return http(myConfig)
      //   },
      //   fail:()=>{
      //   },
      //   complete(ev){
      //     if (ev.data.code === 401) {
      //       let currentPages =  getCurrentPages().pop();
      //       const navToStr = wx.utils.isTabBar(currentPages.route)
          
      //       wx.redirectTo({
      //         url: `/pages/login/index?redUrl=${currentPages.route}&reductType=${navToStr}`,
      //       })
      //       wx.showToast({
      //         title: '登录状态已过期，请重新登录',
      //         icon:"none"
      //       })
      //     }
      //   }
      // })
      // console.log(getApp().refreshToken);

      if (config.url === 'https://live-api.itheima.net/refreshToken') {
        let currentPages =  getCurrentPages().pop();
        const navToStr = wx.utils.isTabBar(currentPages.route)
        wx.redirectTo({
          url: `/pages/login/index?redUrl=${currentPages.route}&reductType=${navToStr}`,
        })
        wx.showToast({
          title: '登录状态已过期，请重新登录',
          icon:"none"
        })
      }else{
        const res =  await wx.myRequest({
          url:'/refreshToken',
          method:"post"
        }) 
  
        getApp().refreshToken = res.data.refreshToken
        getApp().token = res.data.token
  
        wx.setStorageSync('token', res.data.token)
        wx.setStorageSync("refreshToken",res.data.refreshToken)
  
        return http(config)
      }
      
  }else{
    return data
  }

}

http.intercept.request = function(config){
  if (config.url === "https://live-api.itheima.net/refreshToken") {
    config.header = {
      "Authorization":  'Bearer ' + getApp().refreshToken
    }
  }else{
    config.header = {
      "Authorization":  'Bearer ' + getApp().token
    }
  }

  return config
}

export default http

wx.myRequest = http